ret2dir: Rethinking Kernel Isolation
نویسندگان
چکیده
Return-to-user (ret2usr) attacks redirect corrupted kernel pointers to data residing in user space. In response, several kernel-hardening approaches have been proposed to enforce a more strict address space separation, by preventing arbitrary control flow transfers and dereferences from kernel to user space. Intel and ARM also recently introduced hardware support for this purpose in the form of the SMEP, SMAP, and PXN processor features. Unfortunately, although mechanisms like the above prevent the explicit sharing of the virtual address space among user processes and the kernel, conditions of implicit sharing still exist due to fundamental design choices that trade stronger isolation for performance. In this work, we demonstrate how implicit page frame sharing can be leveraged for the complete circumvention of software and hardware kernel isolation protections. We introduce a new kernel exploitation technique, called return-to-direct-mapped memory (ret2dir), which bypasses all existing ret2usr defenses, namely SMEP, SMAP, PXN, KERNEXEC, UDEREF, and kGuard. We also discuss techniques for constructing reliable ret2dir exploits against x86, x86-64, AArch32, and AArch64 Linux targets. Finally, to defend against ret2dir attacks, we present the design and implementation of an exclusive page frame ownership scheme for the Linux kernel that prevents the implicit sharing of physical memory pages with minimal runtime overhead.
منابع مشابه
ret2dir: Deconstructing Kernel Isolation
Return-to-user (ret2usr) attacks redirect corrupted kernel pointers to data residing in user space. In response, several kernel-hardening approaches have been proposed to enforce a more strict address space separation, by preventing arbitrary control flow transfers and dereferences from kernel to user space. Intel and ARM also recently introduced hardware support for this purpose in the form of...
متن کاملRethinking Sendfile Support in Unix Kernel
Traditional web servers, file servers, and proxies transfer files to clients using basic system calls such as UNIX’s send/writev. However, these calls incur an overhead due to copying data between user space and kernel space. This can be avoided in certain cases by utilizing UNIX’s zero-copy calls, e.g. splice and sendfile. In this paper, we suggest two simple modifications to make the use of s...
متن کاملPoster: (SF)2I - Structure Field Software Fault Isolation
Commodity operating systems are self-extending, loading code at runtime to add new features. While useful, such self-extensibility allows attackers to inject kernel-level malware into the operating system kernel. Such malware threatens security system-wide and is not yet completely mitigated. This poster demonstrates our approach to provide safe extensibility of commodity operating system kernels.
متن کاملMicrodrivers: A New Architecture for Device Drivers
Commodity operating systems achieve good performance by running device drivers in-kernel. Unfortunately, this architecture offers poor fault isolation. This paper introduces microdrivers, which reduce the amount of driver code running in the kernel by splitting driver functionality between a small kernel-mode component and a larger user-mode component. This paper presents the microdriver archit...
متن کاملKernel Plugins: When a VM Is Too Much
This paper presents kernel plugins, a framework for dynamic kernel specialization inspired by ideas borrowed from virtualization research. Plugins can be created and updated inexpensively on-the-fly and they can execute arbitrary user-supplied functions such that neither safety nor performance are compromised. Three key techniques are used to implement kernel plugins: (1) hardware fault isolati...
متن کامل